#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
单调递增二进制字符串最小翻转次数 - 生成数据文件
生成简洁的测试用例，不包含随机数据
"""

def generate_test_data():
    """生成基础测试数据"""
    return [
        ("00110", 1),
        ("010110", 2),
        ("00011000", 2),
        ("0", 0),
        ("1", 0),
        ("00", 0),
        ("11", 0),
        ("01", 0),
        ("10", 1)
    ]

def generate_edge_cases():
    """生成边界测试数据"""
    return [
        # 空字符串测试
        ("", 0),
        
        # 单个字符测试
        ("0", 0),
        ("1", 0),
        
        # 两个字符测试
        ("00", 0),
        ("01", 0),
        ("10", 1),
        ("11", 0),
        
        # 全0或全1测试
        ("0000", 0),
        ("1111", 0),
        
        # 交替字符测试
        ("010", 1),
        ("101", 1)
    ]

def generate_large_test_cases():
    """生成大型测试数据"""
    return [
        # 长字符串测试
        ("0000000000", 0),
        ("1111111111", 0),
        ("0000011111", 0),
        ("1111100000", 5),
        
        # 复杂模式测试
        ("00110011", 2),
        ("11001100", 4),
        
        # 需要多次翻转的测试
        ("10101010", 4),
        ("01010101", 4)
    ]

if __name__ == "__main__":
    print("单调递增二进制字符串最小翻转次数 - 测试数据生成")
    print("=" * 50)
    
    basic_cases = generate_test_data()
    edge_cases = generate_edge_cases()
    large_cases = generate_large_test_cases()
    
    print(f"基础测试数据: {len(basic_cases)} 个")
    print(f"边界测试数据: {len(edge_cases)} 个")
    print(f"大型测试数据: {len(large_cases)} 个")
    
    total_cases = len(basic_cases) + len(edge_cases) + len(large_cases)
    print(f"总测试数据: {total_cases} 个")
    
    print("\n示例测试数据:")
    for i, (s, expected) in enumerate(basic_cases[:5]):
        print(f"  {i+1}. s='{s}', 期望结果={expected}") 